﻿Imports System.Data

Public Class CTraspasosServicio
    Public Function ObtieneParametrosTraspasos() As DataTable
        Return CServicioLocalSQLServerDB.ObtieneParametrosTraspasos()
    End Function

    Public Function ObtieneRutaTLOADERTraspasos() As String
        Return CServicioLocalSQLServerDB.ObtieneRutaTLOADERTraspasos()
    End Function

    Public Function ObtieneRutaArchivoTraspasos() As String
        Return CServicioLocalSQLServerDB.ObtieneRutaArchivoTraspasos()
    End Function

    Public Function EjecutarProceso(ByVal comando As String, ByVal argumentos As String) As Boolean
        Dim proceso As New Process()
        Dim idRegBit As Integer

        Try
            proceso.EnableRaisingEvents = True
            proceso.StartInfo.FileName = comando
            proceso.StartInfo.Arguments = argumentos
            proceso.Start()
            idRegBit = CUtileria.GrabarBitacora("Traspasos", "T-Loader", "Se envía el archivo al T-Loader, proceso ID: " & proceso.Id)
            proceso.Close()
            CUtileria.CompletarRegBitacora(idRegBit)

            Return True

        Catch ex As Exception
            idRegBit = CUtileria.GrabarBitacora("Traspasos", "T-Loader", ex.Message)
            CUtileria.CompletarRegBitacora(idRegBit)
            Return False
        End Try
    End Function

    Public Function ObtieneSegundosEspera() As Integer
        Return CServicioLocalSQLServerDB.ObtieneSegundosEspera()
    End Function

    Public Function ObtieneParametrosTLOADERCOVAFTLTraspasos() As String
        Return CServicioLocalSQLServerDB.ObtieneParametrosTLOADERCOVAFTLTraspasos()
    End Function

    Public Function InsertaBitacoraDECALOG(ByVal strNombreArchivo As String, ByVal intUsuario As Integer) As Integer
        Try
            Return CServicioLocalSQLServerDB.InsertaBitacoraDECALOG(10, strNombreArchivo, intUsuario)
        Catch ex As Exception
            Dim idRegBit As Integer = CUtileria.GrabarBitacora("Traspasos", "GuardarBitacoraDECALOG", "Error al guardar el folio Decalog para el archivo: " & strNombreArchivo & ". Error: " & ex.Message)
            CUtileria.CompletarRegBitacora(idRegBit)

            Return 0
        End Try
    End Function

    Public Function ActualizaBitacoraDECALOG(ByVal intId As Integer, ByVal intEstatus As Integer, ByVal intUsuario As Integer) As Boolean
        Try
            Return CServicioLocalSQLServerDB.ActualizaBitacoraDECALOG(intId, intEstatus, intUsuario)
        Catch ex As Exception
            Dim idRegBit As Integer = CUtileria.GrabarBitacora("Traspasos", "ActualizaBitacoraDECALOG", "Error al actualizar el estatus del folio de la bitacora de Decalog: " & intId.ToString & ". Error: " & ex.Message)
            CUtileria.CompletarRegBitacora(idRegBit)

            Return False
        End Try
    End Function

    Public Function ActualizaFolioDECALOG(ByVal intId As Integer, ByVal strFolio As String, ByVal intUsuario As Integer) As Boolean
        Try
            Return CServicioLocalSQLServerDB.ActualizaFolioDECALOG(intId, strFolio, intUsuario)
        Catch ex As Exception
            Dim idRegBit As Integer = CUtileria.GrabarBitacora("Traspasos", "ActualizaFolioDECALOG", "Error al actualizar el folio de Decalog: " & intId.ToString & ". Error: " & ex.Message)
            CUtileria.CompletarRegBitacora(idRegBit)

            Return False
        End Try
    End Function

    Public Function ObtieneBitacoraDECALOG(ByVal strFechaInicio As String, ByVal strFechaFin As String) As List(Of CBitacoraDecalog)
        Try
            Dim dtDatos As DataTable = CServicioLocalSQLServerDB.ObtieneBitacoraDECALOG(10, strFechaInicio, strFechaFin)
            Dim lstBitacora As New List(Of CBitacoraDecalog)
            Dim b As CBitacoraDecalog

            If dtDatos.Rows.Count > 0 Then
                For Each dt As DataRow In dtDatos.Rows
                    b = New CBitacoraDecalog()
                    With b
                        .Id = Convert.ToInt32(dt(0))
                        .IdEstatus = Convert.ToInt32(dt(1))
                        .Estatus = Convert.ToString(dt(2))
                        .Archivo = Convert.ToString(dt(3))
                        .Folio = Convert.ToString(dt(4))
                        .Usuario = Convert.ToString(dt(5))
                        .Fecha = Convert.ToDateTime(dt(6))
                        .MensajeError = Convert.ToString(dt(7))
                    End With
                    lstBitacora.Add(b)
                    b = Nothing
                Next
            End If

            Return lstBitacora
        Catch ex As Exception
            Throw ex
        End Try
    End Function

    Public Function ObtieneParametrosTraspasosLista() As List(Of CParametros)
        Try
            Dim dtDatos As DataTable = CServicioLocalSQLServerDB.ObtieneParametrosCompletosTraspasos()
            Dim lstParametros As New List(Of CParametros)
            Dim p As CParametros

            If dtDatos.Rows.Count > 0 Then
                For Each dt As DataRow In dtDatos.Rows
                    p = New CParametros()
                    With p
                        .Clave = Convert.ToInt32(dt(0))
                        .Nombre = dt(1).ToString()
                        .Valor = dt(2).ToString()
                    End With
                    lstParametros.Add(p)
                    p = Nothing
                Next
            End If

            Return lstParametros
        Catch ex As Exception
            Throw ex
        End Try
    End Function

    Public Function ActualizaParametroTraspaso(ByVal intClave As Integer, ByVal strValor As String, ByVal intUsuario As Integer) As Boolean
        Return CServicioLocalSQLServerDB.ActualizaParametroTraspaso(intClave, strValor, intUsuario)
    End Function

    Public Function ActualizaMensajeErrorDECALOG(ByVal intId As Integer, ByVal strMensaje As String, ByVal intUsuario As Integer) As Boolean
        Try
            Return CServicioLocalSQLServerDB.ActualizaMensajeErrorDECALOG(intId, strMensaje, intUsuario)
        Catch ex As Exception
            Dim idRegBit As Integer = CUtileria.GrabarBitacora("Traspasos", "ActualizaErrorDECALOG", "Error al actualizar el mensaje de error de Decalog: " & intId.ToString & ". Error: " & ex.Message)
            CUtileria.CompletarRegBitacora(idRegBit)

            Return False
        End Try
    End Function
End Class
